$(function(){
	var nodeno = $('#nodeno').val();
	var counterCode = $('#counterCode').val();
	$('#querysale').datagrid({
//		title:'销售凭证列表',
		iconCls:'icon-save',
		nowrap: true,
		autoRowHeight: true,
		url : 'querySaleDoc.do?nodeno='+nodeno+'&countCode='+counterCode,
		sortName: 'code',
		sortOrder: 'desc',
		remoteSort: false,
		idField:'UUID',
		columns:[[
            {field:'ck',checkbox:true},
            {field:'COUNTERCODE',title:'柜员代码',width:80,sortable:true},
			{field:'ACCOUNT',title:'帐号',width:100},
			{field:'BILLTYPE',title:'票据类型',width:100,sortable:true},
			{field:'CERTNUM',title:'凭证号',width:100},
			{field:'BANKID',title:'开户行行号',width:100},
			{field:'BANKNAME',title:'开户行行名',width:150},
			{field:'ACCOUNTNAME',title:'户名',width:120},
			{field:'STATE',title:'状态',width:80}
		]],
		rownumbers:true,
		toolbar:[{
			id:'btnadd',
			text:'增加凭证',
			iconCls:'icon-add',
			handler:function(){
				$('#btnsave').linkbutton('enable');
				$('#dlg').dialog('open').dialog('setTitle','增加凭证');
				clearAdd();
			}
		},{
			id:'btncut',
			text:'票据作废',
			iconCls:'icon-remove',
			handler:function(){
				$('#btnsave').linkbutton('enable');
				removeCert();
			}
	/**		
		},'-',{
			id:'btnsave',
			text:'查看凭证详细',
	//		disabled:true,
			iconCls:'icon-edit',
			handler:function(){
				$('#btnsave').linkbutton('enable');
				viewCert();
			}
	**/		
		},'-',{
			id:'btnsave',
			text:'打印票据',
			iconCls:'icon-print',
			handler:function(){
				$('#btnsave').linkbutton('enable');
				var row = getSelectionsDoc();
				if (row!=null && row!=""){
					if (row=='disType'){
						$.messager.alert('提示信息','请选择同一票据类型打印！');
					}else{
						// 打印票据
						startPrint(row);
					}
				}else{
					$.messager.alert('提示信息','请选择要打印的记录！');
				}
				clearSelections();
			}
		}
		/**
		,'-',{
			id:'btnsave',
			text:'打印设置',
			iconCls:'icon-save',
			handler:function(){
				$('#btnsave').linkbutton('enable');
				$('#printSettDlg').dialog('open').dialog('setTitle','打印设置');
			}
		},'-',{
			id:'btnsave',
			text:'参数设置',
			iconCls:'icon-save',
			handler:function(){
				$('#btnsave').linkbutton('enable');
				$('#paraSettDlg').dialog('open').dialog('setTitle','参数设置');
			}
		}
		**/
		]
	});

});

/**
 * 打印时使用
 * @param {} uuid
 */
function getAccoName(uuid){
	var order = getradio('printOrder');
	var url = 'checkAccountName.do';
	$.ajax({
	  type: 'POST',
	  url: url,
	  async: false,
	  data: {uuid : uuid , order : order},
	  success: function(datas, textStatus){
	  	var json = eval("("+datas+")");
	  	// 关闭设备
	  	ChequePrint.CloseCom();
	  	// 打开设备
		var flag = ChequePrint.OpenSpecifiedCom('COM1',115200);
//		alert(flag);
//	  	var flag = true;
		if(flag){
			for(var i=0;i<json.length;i++){
	  			var temp = '';
		  		var uuid = json[i].UUID;
		  		var bankid = json[i].BANKID;
		  		var bankname = json[i].BANKNAME;
		  		var account = json[i].ACCOUNT;
		  		var accountname = json[i].ACCOUNTNAME;
		  		var ispasswd = json[i].ISPASSWORD;
		  		var dimechart = json[i].ENCRYPTION;
		  		var printbigsmal = json[i].PRINTBIGSMAL;
		  		var certnum = json[i].CERTNUM;
		  		var billtype = json[i].BILLTYPE;
		  		ispasswd = isPasss(ispasswd);
		  //		alert(uuid+'  '+bankname +'   '+account +'   '+ispasswd +'   '+dimechart +'   '+printbigsmal+' '+certnum);
				if(printBase(flag,bankid,bankname,account,ispasswd,dimechart,printbigsmal,certnum,billtype,accountname)){
					$.ajax({
						type : 'POST',
						url : 'print.do',
						async : false,
						data : {uuid : uuid},
						success : function(datas, textStatus) {
							temp = datas;
							$('#querysale').datagrid('reload'); // reload the user data
						}
					});
					if(temp=='0'){
						$.messager.alert('提示信息','凭证号：'+certnum+' 更改状态失败，任务终止！');
						ChequePrint.CloseCom();
						break;
					}
				}else{
					// 暂时不做任何处理，由javascript异常类处理
					break;
				}
		  	}
		  	// 清空显示屏
		  	ChequePrint.ShowText('sucess');
		}else{
			$.messager.alert('提示信息','设备启动出错，请重新启动！');
			ChequePrint.CloseCom();
		}
	  }
	});
}

function isPasss(ispasswd){
	if(ispasswd=='Y'){
		return '凭支付密码支取';
	}else{
		return '    ';
	}
}
// 根据票据类型选择不同的帐号
function changeBillType(){
	var billType = $('#billType').val();
	if(billType=='01'){
		// 现金支票前8位
		var cashno = $('#cashnohid').val();
		$('#checknoid').val(cashno);
	}else if(billType=='02'){
		// 转帐支票前8位
		var checkno = $('#checknohid').val();
		$('#checknoid').val(checkno);
	}else{
		$('#checknoid').val('');
	}
}
// 获取选中行
function getSelectionsDoc(){
	var ids = [];
	var rows = $('#querysale').datagrid('getSelections');
	for(var i=0;i<rows.length;i++){
		ids.push('\''+rows[i].UUID+'\'');
		// 判断是否同一种票据类型
		if(!checkDocType(rows[i].BILLTYPE)){
			// 不是同一种票据类型，退出循环体，弹出提示信息
			oldtype = "";
			return "disType";
		}
	}
	oldtype = "";
	return ids.join(',');
}

// 校验打印是否同一种票据类型 true 同一种票据类型，false不是同一种票据类型
var oldtype="";
function checkDocType(type){
	// 如果类型值为空 直接返回票据类型为false
	if(type==null || type=="")
		return false;
	// 判断临时值是否为空
	if(oldtype=="")
		oldtype = type;
	// 比较二种票据类型
	if(oldtype!=type){
		return false;
	}else{
		oldtype = type;
	}
	return true;
}

// 清除选项
function clearSelections(){
	$('#querysale').datagrid('clearSelections');
}
// 打开票据类型
function startPrint(row){//alert("startPrint"+row);
	var selected = $('#querysale').datagrid('getSelected');
	if(selected){
		if(selected.STATE=='作废'){
			$.messager.alert('提示信息','已作废不能做打印操作！');
			return false;
		}
	}
	$.messager.confirm('提示信息','确认打印该记录！',function(r){
		if (r){//alert("调用打印机");
			// 调用打印机
			getAccoName(row);
		}
	});
}

// 查询
function search(){
	var bankId = $('#bankId').val();	
	var account = $('#searacco').val();//帐号
	var countCode = $('#counterCode')// 柜员号
	var saledate = $('#saledate').datebox('getValue');
	var state = $('#state').val();	// 状态
	var certnum = $('#certnum').val();
	var order = $('#printorderhid').val();
	var billType=$("#billType").val();
	//alert("billType="+billType);
	clearSelections();
	$('#querysale').datagrid('reload',
	   {account : account, saledate : saledate , 
		state : state , order : order ,
		certnum : certnum,
		billType:billType
		});
}

// 打开增加凭证页面
function newCert(){
	$('#dlg').dialog('open').dialog('setTitle','增加凭证');
	$('#fm').form('clear');
}

// 清除增加凭证页面
function clearAdd(){
	$('#account').val('');	
	$('#billstart').val('');	
	$('#saleNum').val('');	
	$('#billend').val('');	
	$('#billType').val('');	
}
// 打印设置
function printSett(){
	$('#printSettDlg').dialog('open').dialog('setTitle','打印设置');
	changePrinter();
//	$('#printfm').form('clear');
}

// 打开参数设置
function paraSett(){
	$('#paraSettDlg').dialog('open').dialog('setTitle','参数设置');
//	$('#parafm').form('clear');
}
// 保存参数设置
function saveParaSett(){
	var url = 'paraSett.do';
	$('#parafm').form('submit',{
		url: url,
		onSubmit: function(){
			return $(this).form('validate');
		}
	});
	
	var bankid = $('#bankId').val();
	$('#savebankId').val(bankid);
	var bankName = $('#bankName').val();
	$('#savebankName').val(bankName);
	$('#paraSettDlg').dialog('close');		// close the dialog
}


// 根据不同打印机设置
function changePrinter(){
	var value = $('#printType').val();
	if(value==0){
		// 设置纸张类型(横向，纵向)
		$('#paperType').combobox('disable');
		// 设置按钮是否可用
		$('#specal').linkbutton({disabled:false});
		// 设置纸张方向
//		$('#paperDire').disabled=enable;
	}else if(value==1){
		$('#paperType').combobox('enable');
		$('#specal').linkbutton({disabled:true});
//		$('#paperDire').disabled=enable;
	}else{
		$('#paperType').combobox('enable');
		$('#specal').linkbutton({disabled:true});
//		$('#paperDire').disabled=enable;
	}
}

// 关闭凭证窗口
function closeSale(){
	$('#savebutton').linkbutton({
		disabled:false
	});
	$('#dlg').dialog('close');
}
// 生成凭证
function saveSale(){
	$('#savebutton').linkbutton({
		disabled:true
	});
	// 校验交换行是否为空
	var bankid = $('#savebankId').val();
	if(bankid==''){
		$.messager.alert('提示信息','请联系管理员增加银行机构信息！');
		return false;
	}
	// 校验票据类型
	var billType = $('#billType').val();
	if(billType==''){
		$.messager.alert('提示信息','请选择票据类型！');
		return false;
	}
	// 出售张数
//	var billType = $('#billType').val();
	
	var url = 'saveSaleDoc.do';
	$('#fm').form('submit',{
		url: url,
		onSubmit: function(){
			return $(this).form('validate');
		},
		success: function(result){
			if(result !='1'){
				$.messager.alert('提示信息','操作成功！');
			}else{
				$.messager.alert('提示信息','操作失败！');
			}
			$('#dlg').dialog('close');		// close the dialog
			$('#querysale').datagrid('reload');	// reload the user data
			
			$('#savebutton').linkbutton({
				disabled:false
			});
		}
	});
}
// 支票作废
function removeCert(){
	var row = getSelectionsDoc();
	if (row!=null){
		var selected = $('#querysale').datagrid('getSelected');
		if(selected){
			if(selected.STATE=='作废'){
				$.messager.alert('提示信息','已作废不能再次操作！');
				return false;
			}
		}
		$.messager.confirm('提示信息','确认删除该记录！',function(r){
			if (r){
				$.post('delete.do',{uuid : row },function(result){
					$('#querysale').datagrid('reload');	// reload the user data
				});
			}
		});
	}else{
		$.messager.alert('提示信息','请选择要删除的记录！');
	}
	clearSelections();
}
// 查看凭证详细
function viewCert(){
	var row = $('#querysale').datagrid('getSelected');
	if (row){
		$('#dlg').dialog('open').dialog('setTitle','查看凭证明细');
		$('#fm').form('load',row);
	}
}
// 校验票据起始号
function saleStart(){
	var billstart = document.getElementById('billstart').value;
	if(billstart.length!=8){
		$.messager.alert('提示信息','票据起始号为8位！');
		document.getElementById('saleNum').value = 0;
		document.getElementById('billend').value = '';
	}
}
// 生成票据讫止号
function saleEnd(){
	var maxno = $('#maxnohid').val();
	var saleNum = document.getElementById('saleNum').value;
	var billstart = document.getElementById('billstart').value;
	if(parseInt(saleNum)>parseInt(maxno)){
		$.messager.alert('提示信息','出售张数最大为 '+maxno+' 张！');
		return false;
	}
	
	if(saleNum=='' || billstart.length!=8){
		document.getElementById('saleNum').value = 0;
		document.getElementById('billend').value = '';
	}else{
		var endNum = parseInt('1'+billstart) - 1 + parseInt(saleNum);
		endNum = endNum +'';
		var temp = endNum.substring(1,9);
		document.getElementById('billend').value = temp;
	}
}
	// 生成凭证
function addsale(){
	document.forms[0].submit();
  	window.returnValue=1;
  	window.close();
}
	// 关闭
function cancel(){
	window.close();
}
// 打印票据分类
function printBase(flag,bankid,bankname,account,ispasswd,dimechart,printbigsmal,certnum,billtype,accountname){
	if(billtype!='05'){// 打印现金支票
		return printDoc(flag,bankid,bankname,account,ispasswd,dimechart,printbigsmal,certnum);
	}else{// 打印电汇凭证
		return printCertDoc(flag,bankid,bankname,account,ispasswd,dimechart,printbigsmal,certnum,accountname);
	}
}

// 打印电汇凭证
function printCertDoc(flag,bankid,bankname,account,ispasswd,dimechart,printbigsmal,certnum,accountname){
//	alert('打印电汇'+flag);
	if (accountname == null) accountname = '';
	// 电汇票据大小
	var certpaperSizeX = $('#certPaperSizeXhid').val();
	var certpaperSizeY = $('#certPaperSizeYhid').val();
	// 支付密码位置
	var certpassX = $('#certpassXhid').val();
	var certpassY = $('#certpassYhid').val();
	// 帐号位置(回单)
	var acountReceiptX = $('#acountReceiptXhid').val();
	var acountReceiptY = $('#acountReceiptYhid').val();
	// 汇款人位置(回单)
	var remitterReceiptX = $('#remitterReceiptXhid').val();
	var remitterReceiptY = $('#remitterReceiptYhid').val();
	// 图码位置
	var certImgX = $('#certImgXhid').val();
	var certImgY = $('#certImgYhid').val();
	// 汇款人全称
	var remitterX = $('#remitterXhid').val();
	var remitterY = $('#remitterYhid').val();
	// 汇款人账号
	var remitterAccountX = $('#remitterAccountXhid').val();
	var remitterAccountY = $('#remitterAccountYhid').val();
//	alert(certpaperSizeX+' - '+certpaperSizeY+' - '+certpassX+' - '+certpassY+' - '+acountReceiptX+' - '+acountReceiptY);
//	alert(remitterReceiptX+' - '+remitterReceiptY+' - '+certImgX+' - '+certImgY+' - '+remitterX+' - '+remitterY);
//	alert(dimechart+"@"+account+"@"+bankname+"@"+ispasswd+"@");
	
	// 图码
	var certImgPrinthid = $('#certImgPrinthid').val();
	// 电汇款人（回单）
	var remitterReceiptPrinthid = $('#remitterReceiptPrinthid').val();
	// 帐号(回单)
	var acountReceiptPrinthid = $('#acountReceiptPrinthid').val();
	// 汇款银行名称
	var remitterPrinthid = $('#remitterPrinthid').val();
	// 账号
	var remitterAccountPrinthid = $('#remitterAccountPrinthid').val();
	// 支付密码
	var certPassPrinthid = $('#certPassPrinthid').val();
	
//	alert(certImgPrinthid+' '+remitterReceiptPrinthid +' '+acountReceiptPrinthid+' '+remitterPrinthid+' '+remitterAccountPrinthid+" "+certPassPrinthid);
	if(flag){
		// 清除打印机缓存
		ChequePrint.DeleteAllCheque();
		// 设置电汇凭证票据X、Y轴
		ChequePrint.SetBillWidth(certpaperSizeY); // 支票宽度
		ChequePrint.SetBillLength(certpaperSizeX); // 支票长度
		ChequePrint.SetHeadUp(0); // 1 打印头抬起,0 打印头不抬起
		// 1： 支票号、2：打印内容、3：字体、4：Y轴坐标、5：X轴坐标、6：打印类型(0:文本、1：二维码)
		// 二维码（支票号，二维码区域名，打印的条码信息，打印条码信息的起点坐标，打印条码信息的起点坐标，基本元素宽度）
		if(certImgPrinthid=='0'){
			ChequePrint.SetQRWidth(5);
			x = ChequePrint.SetChequeSection(certnum, dimechart , 'P14', certImgY, certImgX , '2', '1');
		}
		// 账号(回单)
		if(acountReceiptPrinthid=='0'){
			x = ChequePrint.SetChequeSection(certnum, account , 'P14', acountReceiptY , acountReceiptX , '2', '0');
		}
		// 汇款人位置(回单)
		if(remitterReceiptPrinthid=='0'){
			x = ChequePrint.SetChequeSection(certnum, accountname , 'B10', remitterReceiptY , remitterReceiptX , '2', '0');
		}
		// 打印是否有支付密码（支票号、打印的区域名、打印的文字、打印文字起点坐标、打印文字起点坐标、打印文字旋转方向、打印文字宽度放大点数、打印文字高度放大点数）
		if(certPassPrinthid=='0'){
			x = ChequePrint.SetChequeSection(certnum, ispasswd , 'B10', certpassY , certpassX , '2', '0');
		}
		// 汇款人账号
		if(remitterAccountPrinthid=='0'){
			x = ChequePrint.SetChequeSection(certnum, account , 'P14', remitterAccountY , remitterAccountX , '2', '0');
		}
		// 汇款人全称
		if(remitterPrinthid=='0'){
			
			x = ChequePrint.SetChequeSection(certnum, accountname , 'B10', remitterY , remitterX , '2', '0');
		}
//		alert('设置结束！');
		// 0 不等待 异步，1 等待 同步
		var res = ChequePrint.PrintCheque(1);
//		alert('打印完状态值：'+res);
		// 0 为成功！ -1 其它错误 -2 设置失败
		if(res!='0'){
			flag = false;
		}
	}
//	return false;
	return flag;
}
// 打印支票
function printDoc(flag,bankid,bankname,account,ispasswd,dimechart,printbigsmal,certnum){
//	alert('打印支票');
	var x ;
//	alert(' 正在打印凭证号：'+certnum);
//	alert('打开设备：'+flag);
	// 支票大小
	var paperSizeX = $('#paperSizeXhid').val();
	var paperSizeY = $('#paperSizeYhid').val();
	// 支付密码位置
	var passX = $('#passXhid').val();
	var passY = $('#passYhid').val();
	// 帐号位置
	var acountX = $('#acountXhid').val();
	var acountY = $('#acountYhid').val();
	// 行名位置
	var bankNameX = $('#bankNameXhid').val();
	var bankNameY = $('#bankNameYhid').val();
	// 图码位置
	var imgX = $('#imgXhid').val();
	var imgY = $('#imgYhid').val();
	// 大小额位置
	var bigsmalX = $('#bigXhid').val();
	var bigsmalY = $('#bigYhid').val();
	// 支票帐号
//	var account = $('#account').val();
//	alert(passX+' - '+passY+' - '+acountX+' - '+acountY+' - '+bankNameX+' - '+bankNameY+' - '+imgX+' - '+imgY +" - "+bigsmalX);
	// 图码
	var img = document.getElementById('imghid').value;
	// 行名
	var printbankId = document.getElementById('bankIdhid').value;
	// 帐号
	var accountid = document.getElementById('accounthid').value;
	// 行号大小额
	var bankbigid = document.getElementById('bankbighid').value;
	// 支付密码
	var passid = document.getElementById('passhid').value;
	
//	alert(img+' '+printbankId +' '+accountid+' '+bankbigid+' '+passid);
	
	if(flag){
		// 清除打印机缓存
		ChequePrint.DeleteAllCheque();
		ChequePrint.SetHeadUp(1); // 1 打印头抬起,0 打印头不抬起
		// 1： 支票号、2：打印内容、3：字体、4：Y轴坐标、5：X轴坐标、6：打印类型(0:文本、1：二维码)
		// 支票大小
		ChequePrint.SetBillWidth(paperSizeY); // 支票宽度
		ChequePrint.SetBillLength(paperSizeX); // 支票长度
		
//		alert('开始设置！打印二维码区域 certnum '+certnum+'  -- dimechart '+dimechart);
		// 二维码（支票号，二维码区域名，打印的条码信息，打印条码信息的起点坐标，打印条码信息的起点坐标，基本元素宽度）
		if(img=='0'){
			ChequePrint.SetQRWidth(5);
			x = ChequePrint.SetChequeSection(certnum, dimechart , 'P14', imgY , imgX, '2', '1');
//			alert(dimechart+'img123'+x);
		}
		// 行名位置（支票号、打印的区域名、打印的文字、打印文字起点坐标、打印文字起点坐标、打印文字旋转方向、打印文字宽度放大点数、打印文字高度放大点数）
//		alert('开始设置！打印行名certnum'+certnum+'  -- bankname '+bankname);
		if(printbankId=='0'){
			x = ChequePrint.SetChequeSection(certnum, bankname , 'B10', bankNameY , bankNameX , '4', '0');
//			alert(bankname+'  printbankId123  '+x);
		}
		// 打印帐号（支票号、打印的区域名、打印的文字、打印文字起点坐标、打印文字起点坐标、打印文字旋转方向、打印文字宽度放大点数、打印文字高度放大点数）
//		alert('开始设置！打印帐号certnum'+certnum+'  -- certnum '+account);
		if(accountid=='0'){
			x = ChequePrint.SetChequeSection(certnum, account , 'P14', acountY , acountX , '4', '0');
//			alert(account+'  accountid123  '+x);
		}
		// 打印是否有支付密码（支票号、打印的区域名、打印的文字、打印文字起点坐标、打印文字起点坐标、打印文字旋转方向、打印文字宽度放大点数、打印文字高度放大点数）
//		alert('开始设置！打印是否有支付密码certnum'+certnum+'  -- ispasswd '+ispasswd);
		if(passid=='0'){
			x = ChequePrint.SetChequeSection(certnum, ispasswd , 'B10', passY , passX , '4', '0');
//			alert(ispasswd+' passid123 '+x);
		}// 打印大小额（支票号、打印的区域名、打印的文字、打印文字起点坐标、打印文字起点坐标、打印文字旋转方向、打印文字宽度放大点数、打印文字高度放大点数）
//		alert('开始设置！打印大小额certnum'+certnum+'  -- printbigsmal '+printbigsmal);
		if(bankbigid=='0'){
			//x = ChequePrint.SetChequeSection(certnum, bankid+' / '+'104305045095 ', 'P14', bigsmalY , bigsmalX , '4', '0');
			x = ChequePrint.SetChequeSection(certnum, '104305045095 ', 'P14', bigsmalY , bigsmalX , '4', '0');
//			alert(bankid+' / '+'104305045095' +' bankbigid123 '+x);
		}
//		alert('设置结束！');
		// 0 不等待 异步，1 等待 同步
		var res = ChequePrint.PrintCheque(1);
//		alert('打印完状态值：'+res);
		// 0 为成功！ -1 其它错误 -2 设置失败
		if(res!='0'){
			flag = false;
		}
		// 关闭设备
//		alert('开始关闭设备！');
//		ChequePrint.CloseCom();
	}
//	alert('关闭设备');
//	return false;
	return flag;
}

function getradio(id){
	var radioname = document.getElementsByName(id);
	for(var i=0;i<radioname.length;i++){
		if(radioname[i].checked == true)
			return radioname[i].value;
	}
}